package test4;
/*
引用构造器
定义一个类(Student),里面有两个成员变量(name,age)
并提供无参构造方法和带参构造方法，以及成员变量对应的get和set方法
定义一个接口(StringBuilder),里面定义一个抽象方法
Student build(String name,int age);
定义一个测试类(StudentDemo),在测试类中提供两个方法
一个方法是：useStudentBuilder(StudentBuilder s)
一个方法是主方法，在主方法中调用useStudentBuilder方法
 */
public class StudentDemo {
    public static void main(String[] args) {
//        useStudentBuilder((String name,int age)->{
//            //返回学生类的对象
////            Student s=new Student(name,age);
////            return s;
//            return new Student(name,age);
//        });
        useStudentBuilder( (name,age)->new Student(name,age));

        //引用构造器 调用了Student的构造方法
        useStudentBuilder(Student::new);

        //Lambda表达式被构造器替代时，他的形式参数全部传递给构造器作为参数
    }
    public static void useStudentBuilder(StringBuilder sb){
        Student s=sb.Build("姜恒星",20);
        System.out.println(s.getName()+","+s.getAge());
    }
}
